// 因为出现次数过半的数字要多于其它数字
// 所以可以使用对消的方式做；最后剩下的即为所求数字
int MoreThanHalfNum_Solution(int* numbers, int numbersLen ) {
    int i, votes = 0, x = numbers[0];
    for (i = 0; i < numbersLen; i++) {
        if (votes == 0) x = numbers[i];
        
        if (x == numbers[i]) votes++;
        else {
            votes--;
        }
    }
    // 验证出现次数超过一半
    int cnt = 0;
    for (i= 0; i < numbersLen; i++) {
        if (x == numbers[i]) cnt++;
    }
    if (cnt > numbersLen/2)
        return x;
    else 
        return 0;
}